Parametr v ORDER BY

Otázka od: Petr Jendrejovsky

30. 9. 2002 15:54

Uctive pozdraveni!
Vim, ze uz se tu o tom diskutovalo a vyreseno to bylo pomoci fce FORMAT, ale
ja bych prece jenom potreboval reseni bez pouziti FORMATu, tj. s pouzitim
TQuery.Params.

Pokud pouziji nasledujci SQL:

Data.MainQuery.SQL.Clear;
Data.MainQuery.SQL.Add('SELECT * FROM Music ORDER BY :Order ASC');

a posleze dodam:

Data.MainQuery.ParamByName('Order').AsString:='Artist';
Data.MainQuery.Open;

Tak mi to vrati "Invalid use of keyword. Token: ?, Line Number:1".

Existuje nejake reseni nebo to lze jedine pomoci toho FORMATu?

Dik.

 Jermen (jermen-delphi@atlas.cz)

Odpovedá: Ing. Pavel Žilinec

30. 9. 2002 13:16

Nefunguje to proto, ze
Data.MainQuery.ParamByName('Order').AsString:='Artist' vlozi ten text
i s apostrofy a v te chvili je z toho nesmysl.
Krome pouziti formatu muzes text rovnou poskladat, ale tim vznikne
stejne to same:
MyOrder := 'Artist';
Data.MainQuery.SQL.Add('SELECT * FROM Music ORDER BY ' + MyOrder + ' ASC');
Samozrejme dle Tveho prikladu mohu napsat rovnou
Data.MainQuery.SQL.Add('SELECT * FROM Music ORDER BY Artist ASC');  
--------
ing. Pavel Zilinec
MailTo:zilinec@email.cz

Prog-Soft s.r.o. Plzen
Informacni system pro vyrobce
a distributory napoju

PJ> Uctive pozdraveni!
PJ> Vim, ze uz se tu o tom diskutovalo a vyreseno to bylo pomoci fce FORMAT,
ale
PJ> ja bych prece jenom potreboval reseni bez pouziti FORMATu, tj. s pouzitim
PJ> TQuery.Params.

PJ> Pokud pouziji nasledujci SQL:

PJ> Data.MainQuery.SQL.Clear;
PJ> Data.MainQuery.SQL.Add('SELECT * FROM Music ORDER BY :Order ASC');

PJ> a posleze dodam:

PJ> Data.MainQuery.ParamByName('Order').AsString:='Artist';
PJ> Data.MainQuery.Open;

PJ> Tak mi to vrati "Invalid use of keyword. Token: ?, Line Number:1".

PJ> Existuje nejake reseni nebo to lze jedine pomoci toho FORMATu?

Odpovedá: Jan Sebelík

1. 10. 2002 11:53

> Odesílatel: Petr Jendrejovsky <jermen-delphi@atlas.cz>
> Data.MainQuery.SQL.Add('SELECT * FROM Music ORDER BY :Order ASC');
Obavam se, ze tohle nepujde, stejne jako nepujde
select * from :tablename.

Musis si cely ten select poskladat.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================